package com.cw.jeeyt.service.intf.api;

import java.util.List;

import com.cw.jeeyt.common.Order;
import com.cw.jeeyt.service.bo.api.ApiFacadeMethodBo;
import com.cw.jeeyt.service.bo.api.ApiFacadeParam;
import com.cw.lang.mybatis.dto.PageInfo;

/**
 * api接口方法业务接口
  * @author chenw
 * @version 1.0.0
 */
public interface ApiFacadeMethodService {
    /**
     * 查询所有api接口方法列表信息
     */
    List<ApiFacadeMethodBo> queryApiFacadeMethodList() throws Exception;

    /**
     * 删除api接口方法
     *
     * @param apiFacadeMethodBo
     */
    void delete(ApiFacadeMethodBo apiFacadeMethodBo) throws Exception;

    /**
     * 更新api接口方法
     *
     * @param apiFacadeMethodBo
     */
    void update(ApiFacadeMethodBo apiFacadeMethodBo) throws Exception;

    /**
     * 更新api接口方法不为空的字段
     *
     * @param apiFacadeMethodBo
     */
    void updateSelective(ApiFacadeMethodBo apiFacadeMethodBo) throws Exception;

    /**
     * 根据主键查询api接口方法
     *
     * @return
     */
    ApiFacadeMethodBo getApiFacadeMethodById(Long id) throws Exception;

    /**
     * 新增api接口方法
     *
     * @param apiFacadeMethodBo
     * @return
     */
    Integer insert(ApiFacadeMethodBo apiFacadeMethodBo) throws Exception;

    /**
     * 新增api接口方法不为空的字段
     *
     * @param apiFacadeMethodBo
     * @return
     */
    Integer insertSelective(ApiFacadeMethodBo apiFacadeMethodBo) throws Exception;

    /**
     * 分页查询api接口方法
     *
     * @param apiFacadeMethodBo
     * @param pageNo
     * @param pageSize
     * @return
     * @throws Exception
     */
    PageInfo<ApiFacadeMethodBo> queryByPage(ApiFacadeMethodBo apiFacadeMethodBo, Integer pageNo, Integer pageSize,
        Order order) throws Exception;

    /**
     * 根据接口文档id查询接口方法列表
     *
     * @param docId
     * @return
     * @throws Exception
     */
    List<ApiFacadeMethodBo> queryListByDocId(Long docId) throws Exception;

    /**
     * 批量保存接口文档方法信息
     *
     * @param apiFacadeMethodList
     * @throws Exception
     */
    void saveApiFacadeMethodBat(List<ApiFacadeMethodBo> apiFacadeMethodList) throws Exception;

    /**
     * 获取请求参数集合
     *
     * @param paramData
     * @return
     */
    List<ApiFacadeParam> getParamList(String paramData);

}
